如何將程式碼從本地放上 Github repository
- 在 Github 上建立一個 repository
- 建立後系統會提示你該怎麼做,將 code 複製下來去終端機操作
- 操作遠端和本地的溝通
#1 指定(-u)將 本地master 推到 origin的master
git push -u origin master
#2 推上本地commit
git push origin master
#3 推上本地新建的分支
git push origin branch 分支名稱
#4 拉下遠端的 commit
git pull origin master
#5 抓下遠端的 branch
git checkout feature
使用 Pull Request(PR)
為什麼要使用 PR?
知乎看到一個舉例,改寫一下,比喻 Pull Request 過程像是我們在大學時教授出作業:
- 以前助教會在課後幫同學補充上課內容和筆記,大家會在助教課抄寫一份筆記(fork)
- 回家延伸內容及寫題目,完成後會讓助教先批改(發 Pull Request 給助教),由他確認內容沒有問題
- 如需修正就再拿回來修正,一直到修改完成,助教才會收齊這些作業(merge)統一交給教授
而運用到軟體開發上,開發者拿到一項 issue 或工作,會在一個專屬他的分支上進行開發,然後完成新功能後需要將它合併到主要分支上,但就像前面說的
- master 分支需要維持穩定
大型專案不可能時常出問題,而且協作者太多也無法讓所有人有權限、都能拿到遠端的資料庫,因為「權限管理」而衍生出 Pull Request 功能。
PR 主要功能
- 通知:通知相關人員來檢查功能開發
- 討論:針對某一段 code 在底下進行有效討論,而不會發散
- 延伸功能:貢獻開源專案
而有錯誤或需修正的地方,要求的修改 (follow-up commit) 會標示在這頁
PR 流程
- 先 Fork 一份原專案到自己的 GitHub 底下,你就有完整的權限,想怎麼改就怎麼改
- 改完後,先推回(Push)你自己帳號的專案
- 然後發 Pull Request 通知原作者知道你有做事,請他看一下。如果他認為 OK,會決定把你這些修改合併(Merge)到他的原專案